package cn.yeziji.forum.dao.iupdater;

import cn.yeziji.forum.wrapper.ForumQuestionUpdate;

/**
 * 问题更新器
 *
 * @author gzkemays
 * @since 2022/11/14 10:10 PM
 */
public class QuestionUpdater {
  /**
   * 更新浏览数量
   *
   * @param id 浏览的问题 id
   * @return 更新构造器
   */
  public static ForumQuestionUpdate updateViewUpdater(Integer id) {
    return new ForumQuestionUpdate()
        .set
        .viewNumber()
        .applyFunc("viewNumber + 1")
        .end()
        .where
        .id()
        .eq(id)
        .end();
  }

  /**
   * 更新收藏数量
   *
   * @param id 收藏的问题 id
   */
  public static ForumQuestionUpdate updateCollectUpdater(Integer id, boolean opera) {
    String applyFunc = opera ? "collectionNumber + 1" : "collectionNumber - 1";
    return new ForumQuestionUpdate()
        .set
        .collectionNumber()
        .applyFunc(applyFunc)
        .end()
        .where
        .id()
        .eq(id)
        .end();
  }
}
